import { regexVerify } from '@/utils'
// 数字
export function isNumeral(rule: any, value: any, callback: Function) {
    !regexVerify(/^[0-9]+.?[0-9]*$/, value) ? callback(new Error("只能输入数字")) : callback();
}

// 字母和数字
export function isLettersNumbers(rule: any, value: any, callback: Function) {
    !regexVerify(/^[A-Za-z0-9]+$/, value) ? callback(new Error("只能输入字母和数字")) : callback();
}

// 验证密码
export function isPass(rule: any, value: any, callback: Function) {
    !regexVerify(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/, value) ? callback(new Error("密码由8到16位大小写字母和数字组成")) : callback();
}

// 最小数字
export function maxNum(rule: any, value: any, callback: Function) {
    if (!regexVerify(/^[0-9]+.?[0-9]*/, value)) {
        callback(new Error('请输入数字'));
    } else if (value > rule.maxNum) {
        callback(new Error(`不能超过${rule.maxNum}`));
    } else {
        callback();
    }
}

// 最大数字
export function minNum(rule: any, value: any, callback: Function) {
    if (!regexVerify(/^[0-9]+.?[0-9]*/, value)) {
        callback(new Error('请输入数字'));
    } else if (value < rule.minNum) {
        callback(new Error(`不能小于${rule.minNum}`));
    } else {
        callback();
    }
}

// 在指定范围的数字
export function between(rule: any, value: any, callback: Function) {
    if (!regexVerify(/^[0-9]+.?[0-9]*/, value)) {
        callback(new Error('请输入数字'));
    } else if (value < rule.minNum || value > rule.maxNum) {
        callback(new Error(`只能在${rule.minNum}到${rule.maxNum}之间`));
    } else {
        callback();
    }
}

// 判断是否整数
export function isInteger(rule: any, value: any, callback: Function) {
    if (!regexVerify(/^\d+$/, value)) {
        callback(new Error('请输入整数'));
    } else {
        callback();
    }
}

export default {}
